https://arxiv.org/abs/1809.03207
Introduction
Elkan Notoらが定式化したsingle-training-setでは、明確にPr(s=1)がわかるものだった。そしてここではSCAR仮定を使っている=完全にランダムに選択する。この仮定の下では、Pr(s=+1∣x,y=+1)=Pr(s=+1∣y)が成り立つ。しかし現実ではそうはうまく行かない。
この論文では、SCARではなく、より弱いSAR、Selected At Randomという仮説を提言している。データxの一部の成分を引数に受け取って計算される関数によって、選ばれる確率が求まる。
因果推論(casual inference literature)で使われる、傾向スコア(propensity score)をPU Learningにも持ち込む。
なお、Preliminariesでは、サーベイ論文における4つの仮定の参考文献をそれぞれ引用している。
PU learningにおけるラベル付けのメカニズム
xがデータで、ラベルがついているならばy=+1ついてなければy=−1である。そして、Positiveとラベル付けされているときはs=+1そうじゃないときはs=0である。y=−1のサンプルがs=+1となることはない。
Elkan, Notoらの論文にもあるように、PU LearningのSCARの着想は、データが欠損しているときの条件から来ていた。これを援用して定義してみる。
s=+1のサンプルが少ないのは根本的な問題となる。少ないのは、サンプル頻度が少ないか、そもそもが少ないか。多くの提案されている仮定は基本的にサンプル頻度が少ないことに帰している。
SARでのPU Learningのアルゴリズム
傾向スコアのやり方を参考にしている。
傾向スコアとは何か
こちらのQiita記事を大いに参考にした。
共変量とは、因と果の両方に依存されてる変量のこと。これらを想定しないと偽相関を見抜けない。グラフィカルモデルでいうと以下のようになる。
共変量 ----> 因
| /
| /
| /
| /
v v
果
比較する2つグループで、そもそも共変量が絡んで、キレイにバイアスなしの状態に分けられていないことが多い。(例として、高血圧の人が多く投薬群、正常な人の多くがプラセボ群に入ってしまうとか)。そもそも全てのステータスが完全に同じ2人を見つけるなど理論上はあり得ない。
そこで、人iが介入される(上で言う投薬群)確率を傾向スコアとして定義する。そして、傾向スコアを参考にして2つの群に割り振りをすればいい。割り振り方としては近いペアをランダムに入れるetcなどがある。具体的な定義は以下の通り。
Ziを1ならば介入あり、0なら介入なしとして、以下のものが傾向スコア。つまり、共変量を条件としたZi=1の条件付確率である。
e(xi)=Pr(Zi=1∣xi) 具体的には、いかにしてpropensity scoree(xi)の計算をするかは決まっていない。簡単なものは対次元ロジスティック回帰、もっと表現力を上げるならばNNなど。
この論文で使われるのは、IPW(Inverse-Propensity-Weighting)という割り当て手法。
考え方としては、群への割り当て自体は適当でいい。しかし、これのバイアスをうまく除去したい。そこで、該当の全てに対して、できるだけ全てが平等に現れてほしい。そのためには出現頻度が高いものの重みを小さく、低いものの重みを大きくしたい。これにより、「ランダムに選んでいるように見せかける」ことができ、そこからE[At]−E[Aut]の値を計算できる。Atは処置あり、Autは処置なし。
前半ではZi=1、後半ではZi=0だけ集めており、前半ではe(xi)の逆数だが、後半の群は介入なしなので、1−e(xi)の逆数を使う。propensity scoreはPr(Zi=1∣xi)なので、確率的に余事象として引き算すればいい。これによって、平均処置効果ATEという、バイアスを排した2つのグループの間の平均の差を得られる。
N1∑i=1Ne(xi)1(Zi)Yi−N1∑i=1N1−e(xi)1(1−Zi)Yi∑i=1Ne(xi)1(Zi)∑i=1Ne(xi)1(Zi)Yi−∑i=1N1−e(xi)1(1−Zi)∑i=1N1−e(xi)1(1−Zi)Yi 2つの式があるが、下の方がより分散が小さくなる。また、いずれの式でもN→∞とすれば、真の値へと収束することが保証されている。
この論文での応用
e(x)=Pr(s=+1∣x,y=+1) とすると、共変量x,yのもとでのラベルが付く確率を傾向スコアとみなせる。
先ほどのIPWをそのまま使えるならば、一番幸せであるが、ここではNegative例が1つのもないため、1−e(xi)=p(s=0∣y,x)のyの情報がないためそのままでは使えない。
各例の傾向スコアがe(xi)とすると、s=+1のラベル付きサンプルをe(xi)1の重みをもつPositive例と、1−e(xi)1のNegative例として分けて扱うことができると、因果推論の知識で分かった。ということで早速s=+1のサンプルを同様に分解していく、というモチベになる。
分けて扱うといっても、📄
2015-ICML-[uPU] Convex Formulation for Learning from Positive and Unlabeled Data でもR(g)=πE1[l(g(X))−l(−g(X))]+EX[l(−g(X))]となっており、s=+1の例をπの重みをもつPositive例と、−πの重みをもつNegative例として扱っている。しかし、今回はUnlabeledのデータについてそれぞれ重みをつけていくという点で、📄
2008-KDD-Learning Classifiers from Only Positive and Unlabeled Data と似ている。
真の傾向スコアを知っている、知らないで2通りの設定を考える。
真の傾向スコアを知っている
どれほどずれているのかの評価を次のように行える。(ここの経験的な式への変形あってる?)
Ex[l(y,y^)]→n1∑i=1nl(yi,yi^) 損失関数としては、1乗誤差、2乗誤差、対数誤差l(y=1,y^)=−logy^,l(y=1,y^)=−log(1−y^)がある。
そして、si=eiyiという等式が成り立つ。これはなぜ成り立つか。以下のようなものである。
- si,yiは具体的な値であるので、経験分布であると考える。両辺をnで割る。si/n=eiyi/n
- 経験分布とは、具体的な試行から得られる分布。もし試行で現れてない例では0、現れてるものはn回の試行では1回現れるごとに1/nという確率となる=最尤推定。
- siはp^(xi,si=+1)というかたちで経験分布に現れる。(分布から確率を計算する時は具体的な値を引数に渡すので)
- si/nに関して、si=0,1である。今回はsi=1という条件で考えるが、si=1が成り立つ時は1/n、si=0が成り立つときは0/n=0である。よって、si/n=p^(xi,si=+1)
- このように、本来は(経験)分布の中に、変数に入れることができる。このように経験的な式を、該当する経験分布に書き換えることによって、経験じゃない分布でも成り立つことから、ベイズの定理を適用できる。非常に有用なテク。
- siの時と同様に、yiについても、p^(xi,yi=+1)という経験分布についてyi=+1であれば1/n、そうでなければ0/nにより、同様にyi/n=p^(xi,yi)と、分布に書き直せる。
- 書き直したのちは、以下のように経験分布のp^は試行を無限回にすることで、pに近づけられる。これを利用して式変形する。
si/n=eiyi/n⇔p^(xi,si=+1)=eip^(xi,yi=+1)=p^(xi,si=+1)=p(s=+1∣x,y=+1)p^(xi,yi=+1)⇔p(x,s=+1)=p(s=+1∣x,y=+1)p(x,y=+1)⇔p(x,s=+1)=p(s=+1,x,y=+1) なお、SCARの仮定では∀ei=constであるので、下式の最小化の式変形は不要である。📄
2014-NIPS-[Ramp]Analysis of Learning from Positive and Unlabeled Data ではSCARという仮定を前提としてここを飛ばして、cost-sensitiveの式変形へとつないだ。
それを踏まえると、si=eiyiとしても、正しい答えへと収束するとわかる。これを代入すると、最終的に最小化をしたいのは、以下の二値分類とみなした時の式。
本来yi=0,1なので片方の項しか残らないが、si=eiyiを使うことで、小数点になっていくのが面白いところ。
E[R^(y^∣y)]=n1∑i=1nl(yi,yi^)=n1∑i=1nyily=1(yi^)+(1−yi)ly=0(yi^)=n1∑i=1ne(xi)yi(e(xi)1ly=1(yi^)+(1−e(xi)1)ly=0(yi^))+(1−e(xi)yi)ly=0(yi^)=n1∑i=1nsi(e(xi)1ly=1(yi^)+(1−e(xi)1)ly=0(yi^))+(1−si)ly=0(yi^) この式では
- yiと1−yiのPN Learningの式から、siだけを使った式にしたい。
- Positive例であれば、バイアスを考慮したPropensity Scoreによって、PositiveとNegativeに分解できるというのを使う。
- この形を作るために式変形をし、分母に出てきたe(xi)を消すために分母にまた同じものを乗じ、それの帳尻合わせを(1−e(xi)yi)ly=0(y^i)の部分で行っている。
- 変形後の式ではUnlabeledのxiでは、y=0とみなした時の損失で評価する(cost-sensitive特有のnegativeに偏る問題はここでもある)
- 式変形の結果論として以下のことが言える。
- Labeled(Positiveの一部)のxiでは、重みが1/eiのPositiveとしての損失と、(1/ei)−1のNegativeとしての損失を持つ。
- Unlabeledのxでは、重みが1−yieiのNegativeとしてとして扱う。
上界評価
McDiarmidの不等式で評価していた。省略
傾向スコアが未知の場合
傾向スコアの推定を行うしかない。推定したのがei^としたとき、真のリスク関数との差の上界?は以下のようになる。
R(y^)−E[R^(y^∣e^,s)]=n1∑i=1nyi(1−ei^ei)(ly=1(y^i)−ly=0(y^i)) ここからわかることとして、
- ei^,eiが完全に一致すれば0になる。
- ly=1(y^i)=ly=0(y^i)でも成り立つが、これは非現実的では?
- Positiveの傾向スコアの正確性のみが影響する。
- 傾向スコアが間違っているとき、予測したクラスyi^が0か1かに近い、自信満々であるほど大きく響く。
- 傾向スコアが小さいとき、マイナスに式は行くし絶対値は大きくなる。
Learning under the SAR Assumption
予測するときに、任意のデータが無規則にpropensityスコアを取るのは本質的には予測できない。依って、追加の仮定が必要であり、それの一例として、「xのうちの一部の成分によるベクトルxeを選び、それだけでpropensity scoreの算出をする」。
p(s=+1∣y=+1,x)=p(s=+1∣y=+1,xe),e(x)=e(xe) SARをSCARに落とし込むには
複数の層にデータが分けられ、その層の中では各データはSCARであるとするならば、既存の手法で学習することはできる。しかし、これは連続値がxeに入る場合は使えないし、離散値だとしても指数関数的に層が増えてしまうので非現実的ではある。xeの次元は低い方が望ましい。
EMアルゴリズムによる推定
📄
EM Algorithmの解説 。q,θなどの記号はこの中に準拠する。
データxi、ラベルがついているsi、f^を分類器、e^を傾向スコアの出力する関数モデルとする。
今回はp(X,y,s∣f,e)である(複数個であることを考えてxを複数個組み合わせて行列Xとした。他も同様)。与えられたデータX,y,sを生成する事後分布の確率を最大化するように、f,eをパラメタとみなして最適化を行う。
EMアルゴリズムの定義より、隠れ変数Zを用いて、変分下限L(q,θ)=Eq(Z)[q(Z)p(X,s∣f,e)]を記述できる。
そして、EMアルゴリズムの設計通り、
- 今回は、隠れ変数ZはXのground truthのラベルyとする。
- Eステップでは、q(y)=p(y∣X,s,f,e)と代入する。fとeはoldとなる。
- Mステップでは、以下のような値を、f,eを動かして最大化する。
∫p(y∣X,s,fold,eold)logp(X,s,y∣f,e)dy=Ey∣X,s,fold,eold[logp(X,s,y∣f,e)] これを繰り返す。
Eステップ
まずは、隠れ変数yの事後分布であるp(y∣X,s,f,e)を求める。
y^i=p(yi=+1∣xi,si,f^,e^)=si+(1−si)1−f^(xi)e^(xi)f^(xi)(1−e^(xi)) - ラベル付きの時はsi=+1であるため、必ずpositiveである。
- ラベルなしの場合、以下のように式変形を考えると成り立つとわかる。
- わかるのは、理想的な訓練の結果としてf(x)=p(y=+1∣x)となり、e(x)=p(s=+1∣x)となること。
- この2つを利用して、p(y=+1∣s=+0,x)を得たい。
- Pr(s=+1∣x)はPr(y=+1∣x)と条件付独立であることを利用する。
これらを利用して、上式は以下のように導出できる。
p(y=+1∣s=+0,x)=p(s=+0,x)p(y=+1,s=+0,x)=1−p(s=+1,x)p(y=+1,s=+0,x)=1−p(s=+1,y=+1,x)p(y=+1,s=+0,x)=1−p(s=+1,y=+1∣x)p(y=+1,s=+0∣x)=1−p(s=+1∣x)p(y=+1∣x)p(y=+1∣x)p(s=+0∣x)=1−p(s=+1∣x)p(y=+1∣x)p(y=+1∣x)(1−p(s=+1∣x))=1−f^(xi)e^(xi)f^(xi)(1−e^(xi)) Mステップ
先ほど得たq(y)=p(y∣X,s,f,e)については以下の式となる。
q(y)=p(y∣X,s,f,e)=si+(1−si)1−f^(xi)e^(xi)f^(xi)(1−e^(xi)) これをもって、Eステップの最大化は以下の式に対して行う。
∫p(y∣X,s,fold,eold)logp(X,s,y∣f,e)dy=Ey∣X,s,fold,eold[logp(X,s,y∣f,e)] 対数尤度での最大化なので、本体の尤度p(X,s,y∣f,e)を最大化するようなf, eとは何かを考える。仮定より、傾向スコアはPr(s=+1∣x)であり、Pr(y=+1∣x)には依存しないとなるので、それぞれ独立に最大化することを考えればよい。
yについては、
- yi=1とされたものでは、分類器f(xi)も1に近づくべき。これを対数をとったもので最適化。
- yi=0とされたものでは、分類器f(xi)も0に近づくべき。これを対数をとったもので最適化。
と設計されている。よって、以下の損失関数の最小化としてる。予測した隠れ変数のyは下式ではy^iと記述されている。
∑i=1ny^ilogf(xi)+(1−y^i)log(1−f(xi)) 同様に、傾向スコアの予測器も以下のように設計できる。
- si=1とされたものでは、傾向スコアe(xi)も1に近づくべき。これを対数をとったもので最適化。
- si=0とされたものでは、傾向スコアe(xi)も0に近づくべき。これを対数をとったもので最適化。
∑i=1nsiloge(xi)+(1−si)log(1−e(xi)) 対数を取る事により、(0,1)の値域が(−∞,0)となるので、大きなスケールに拡張されより最小化が重要になる。収束判定、傾向スコアと識別器の「両方」が収束したら終了とする。傾向スコアの変化は、最後のn回の傾向スコア予測での変化量の平均と考えてOK。
実験